1. Field of the Invention
Embodiments of the present invention relate to the field of marketing and, in particular, to a system and method for generating messages that are part of a marketing campaign with high throughput.
2. Description of the Related Art
Marketers are continually seeking better ways to create, execute, and automate campaigns with the goal of growing revenue and strengthening customer loyalty. One aspect of such campaigns is personalized messages, which may be a web page, an advertisement, an e-mail communication, a text message, or a mobile message. FIG. 1 illustrates a conventional process for generating personalized messages. During design phase 101, the marketer designs a template 110 for a personalized message that includes stock message sections 112 and personalization sections 114. Stock message sections 112 contain standardized messages that are the same for all recipients of the personalized message. Personalization sections 114 include commands defined by the marketer that invoke queries to a relational database system (RDBS) 120, which stores the marketer's data for generating the personalized messages. During execution phase 102, the marketer iterates through each of its customer records in RDBS 120 and performs the steps of: querying RDBS 120 for data to populate personalization sections 114 of template 110, generating the personalized message with the data returned from RDBS 120, and sending out the personalized message to the customer.
When customer records in a marketer's RDBS number in the hundreds or thousands, the method described above may be executed in a reasonable amount of time. However, the method described above does not scale very well such as when the number of customer records increases to millions or even billions. In such cases, where a high throughput on the order of tens of thousands of messages per second is desirable, the method described above has too much latency, and the latency per message generated is highly variable, because it requires random reads of data associated with database look-ups.